package com.hejing.面向对象特征之二_继承.super关键字调用父类属性_方法_关键字;

/**
 * ClassName: Student
 * Package: com.hejing.面向对象特征之二_继承
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-03-25 18:56
 * @Version: 1.0
 */
public class Student extends Person {

    // 学生特有属性
    String school;

    int id = 1002;  // 子类和父类属性相同，并不会覆盖父类的同名属性

    public Student() {
        super();
        System.out.println("Student 无参构造器的调用");
    }

    public Student(String name, int age) {
        super(name, age);
    }

    // 学生特有方法
    public void study() {
        System.out.println("学生学习");
    }

    // super调用方法的重写测试
    public void eat() {
        System.out.println("学生应该多吃有营养的食物");
        super.eat();
    }

    public void sleep() {
        super.sleep();
        System.out.println("学生睡觉");
    }

    public void show() {
        this.work();
        super.work();
    }

    // super调用属性的测试:
    public void show01() {
        System.out.println(this.id);   // 调用子类同名属性
        System.out.println(super.id);  // 调用父类同名属性
    }

    // super调用父类构造器

}
